An electronic memory system generally comprises a plurality of memory cells for storing information. Each of these memory cells is adapted to store a specific amount of data. In many conventional systems each memory cell can store one bit of information, i.e. the memory cell can adopt two states.
In many conventional non-volatile memory systems, such as EPROM, EEPROM, or Flash memory systems, a memory cell comprises a floating gate transistor comprising a floating gate which is completely surrounded by highly resistive material and is therefore electrically isolated from the remaining gates and inputs of the floating gate transistor. Therefore, if the floating gate is charged with a certain amount of electrical charge, this amount remains unchanged over long periods of time. Consequently, a floating gate transistor can adopt two states which can be maintained over extended periods of time without a connection to a power supply: a first state in which the charge carried by the floating gate is above a given threshold and a second state in which the charge carried by the floating gate is below this threshold. Therefore, a floating gate transistor can be used to store a single bit of information. With the introduction of additional thresholds, more than one bit of information can be stored in a memory cell.
Unlike true read-only memory systems, the non-volatile memory systems mentioned above are not designed to store data permanently. Instead, theses systems are designed to be programmable by a user of the respective memory system. Once programmed, the memory system will store the data until the data is erased. After the data has been erased, the memory system can be re-programmed to hold new data.
The non-volatile memory systems mentioned above employ various mechanisms for the erasing of data. An EPROM, for example, can be erased by exposing it to strong ultraviolet light. In contrast, EEPROM and Flash memory systems can be erased electrically.
All these systems, however, are programmed electrically, i.e. by applying a voltage to specific areas of the memory device for a specific amount of time resulting in currents to flow in the memory device. Typically, in EPROM, EEPROM and Flash memory systems these currents are used to induce Fowler-Nordheim tunneling or they are used for hot carrier injection.
The specific amount of current required to program or write a given memory cell depends on various factors such as cell conditions, temperature, supply voltage or process variations. Additionally, in most memory systems only a limited current is available for write operations. In conventional memory systems, a constant number of memory cells is programmed in parallel, whereby this number is chosen to satisfy the worst case maximum current requirement defined by the aforementioned cell conditions. Since this worst case has a very low probability of occurrence, it follows that in most cases the available current is not used to its full extent. Thus, in conventional memory systems the resources available for the programming of memory cells are not used optimally.
For these or other reasons there is a need for an improved system and/or method for adaptive bit rate programming of a memory device.